POČÍTAČ A ARDUINO UNO 4
Vágner Vlastimil
Rozhodl jsem se zkusit si napsat další jednoduchý program pro ovládání modulu L9110S zakoupený v [1] pro ovládání dvou DC motorků a tento modul ovládat pomocí Arduina a parametry pro ovládání motorů opět zadávat z počítače PC. Program s modulem tak rozšiřuje o další zapojení uvedená v [2].
MODUL S IO L9110S
Na desce jsou osazeny dva IO L9110S které umožňují ovládat dva DC motorky, napájení připojených motorů je z externího zdroje a proud jedním IO nesmí překročit proud 0.8A. Ovládání každého IO L9110S osazeného na DPS je vždy dvěma vstupy motor označený „B“ ovládají vstupy označené B – 1A, B – 1B, vstupy označené A – 1A, A – 1B ovládají motorek označený „A“. Vstup označený B – 1A ovládá výstup Arduina označený PIN10, vstup označený B – 1B ovládá výstup Arduina označený PIN9. Vstup označený A – 1A ovládá výstup Arduina označený PIN7, vstup označený A – 1B ovládá výstup Arduina označený PIN6 uvedené výstupy Arduina ovládají jak směr otáčení motorků tak i otáčky obou motorků, na uvedených vstupech je možné zadávat hodnoty pro PWM. Každý motorek se může otáčet jiným směrem s jinými otáčkami, volba se provádí zadáním hodnot v programu ARDUINO.EXE pro počítač PC. Na vstupy použitých IO L9110S se přivedením signálu PWM z řídící jednotky (Arduina) přímo spouští DC motorek ve směru a otáčkami dle PWM podle aktivního vstupu. Schéma propojení desky Arduino Uno a modulu s L9119S je na obrázku č.01.
PROGRAMY PRO POČÍTAČ A ARDUINO
Program pro počítač má název ARDUINO.EXE jde o jednoduchý terminálový program pro sériovou komunikaci. Program je napsán ve VB6 a je uložený v adresáři KE STAŽENÍ v podadresáři POČÍTAČ kde je také celkový popis ovládání programu v souboru PDF, popis je psán pro program RS_232.EXE ovládání programu ARDUINO.EXE je na ovládání shodné. Je možné jej používat i pro komunikaci s jiným koncovým zařízením, program pro Arduino je uložen v adresáři ARDUINO v podadresáři L9110S s názvem L9110S.ino.
PROGRAM L9110S.INO
Program je napsán tak že po nahrání programu do desky Arduino Uno se již pouze zadávají parametry (hodnoty) pro směr a rychlost obou motorků současně, nebo jednotlivě dle naší volby z terminálu spuštěném na počítači. A pro každou změnu (parametru) se již nemusí upravovat celý program a znovu programovat do desky Arduina, program je velice jednoduchý a upravit si program pro jiný typ Arduino zvládne každý. Pro komunikaci počítače a ARDUINO UNO pokud není použit kabel pro programování desky Arduino Uno, je použit převodník USB/COM CH340 což je převodník USB//COM-TTL. Tento převodník se připojuje na signály TXD a RXD vyvedené na řadový konektor. Uvedený program L9110S.ino je hlavně určený pro odzkoušení ovládání DC motorků s IO L9110S a Arduino Uno a může posloužit jako inspirace při pokusech psaní vlastních programů. !Ne vždy vše funguje i když překladač pro Arduino Uno nenajde chybu v překladu!.
ZADÁVÁNÍ DAT PRO OVLÁDÁNÍ MOTORKŮ Z PC
Po propojení počítače a desky Arduina s modulem L919S podle Obr.č.01 připojíme externí napájecí napětí pro motory. Na počítači spustíme program ARDUINO.EXE zvolíme komunikační port (popis je i v souboru PDF k tomuto programu), otevřeme komunikaci kliknutím na tlačítko „OTEVŘÍT COM“. Do okna pod nápisem „ZÁPIS TEXT“ zadáme jako první hodnoty PWM pro motor označený „B“, poté zadáme hodnoty PWM pro motor označený „A“. Po zadání hodnot klikneme na tlačítko „ODESLAT ZÁPIS TEXT“ tím odešleme data do Arduina a navolený motor nebo oba motory se rozběhnou. Vypnutí navoleného motoru provedeme takto u navoleného motoru si označíme myší hodnotu PWM a tuto pro VYPNUTÍ MOTORU PŘEPÍŠEME „0“ a opět odešleme kliknutím na tlačítko „ODESLAT ZÁPIS TEXT“, nebo klikneme na tlačítko SMAZAT ZADÁNÍ TEXT a všechny hodnoty i s tou kterou chceme změnit zapíšeme znova !! POZOR HODNOTY KTERÉ JSME SMAZALI MIMO MĚNĚNÉ HODNOTY MUSÍ BÝT SHODNÉ S TĚMI CO JSME SMAZALI !! a odešleme kliknutím myši na tlačítko ODESLAT ZÁPIS TEXT. Kliknutím na tlačítko „ULOŽIT ZÁPIS/ČTENÍ“ si uložíme zadávaná a načtená data na disk pro další potřebu, kliknutím na tlačítka s popisy „SMAZAT ČTENÍ TEXT, SMAZAT ZÁPIS TEXT a SMAZAT VŠE“ smažeme zapsané hodnoty v uvedených oknech.
PŘÍKLAD ZADÁVÁNÍ DAT : chceme aby se točil motor označený „A“ vlevo zadáme postupně hodnoty : motorB – 1A zadáme „0“, motorB – 1B zadáme „0“, motorA – 1A „150“ motorA – 1B „0“. To znamená že v textovém okně terminálu který je použit pro komunikaci s modulem Arduino a modulem L9110S bude zadáno „0,0,150,0. A tuto hodnotu odešleme do Arduina a motor označený „A“ se bude točit vlevo dle hodnoty PWM (150), motor vypneme tak že levým tlačítkem myši si označíme hodnotu „150“ a tuto přepíšeme hodnotou „0“ a odešleme do Arduina. Pokud chceme aby se otáčel motor „A“ vpravo zadáme postupně hodnoty 0,0,0,80 a tyto odešleme do Arduina a motor „A“ se bude otáčet vpravo, otáčky budou dle hodnoty PWM 80 vypnutí motoru provedeme stejným způsobem jak je popsáno výše. Pokud chceme aby se otáčel pouze motor „B“ vlevo zadáme postupně hodnoty 85,0,0,0 a tyto odešleme do Arduina motor „B“ se bude otáčet vlevo. Vypnutí motoru provedeme stejným způsobem popsaným výše, stejně tak pokud chceme aby se otáčel opačným směrem než je navolený směr zadáme 0,85,0,0. Pokud chceme aby se točili oba motory zadáme postupně v okně terminálu hodnoty 150,0,0,150 tímto příkazem se budou otáčet oba motory motor „B“ vlevo rychlost otáček bude dle hodnoty PWM 150, motor „A“ se bude otáčet vpravo rychlost otáček bude dle hodnoty PWM 150. Oba motory nebo jeden motor zastavíme tak že hodnoty 150 motor „B“ a 150 motor „A“ podle toho který motor chceme zastavit přepíšeme na hodnotu „0“ a odešleme do Arduina. Hodnoty pro PWM zadáváme v číselném rozsahu 0 – 255.!!
Zadávané hodnoty v textovém terminálu znamenají : první dvě hodnoty znamenají volbu směru (PWM) otáček motoru „B“, další dvě hodnoty znamenají volbu směru (PWM) motoru „A“. Aby odpovídal směr otáčení motoru podle parametrů v programu je důležité odzkoušet jejich připojení do svorek na modulu L9110S a programem postupně volit chod motoru „B“ například vlevo tak aby se směr otáčení motoru shodoval s navoleným chodem a stejně tak odzkoušet i motor „A“.
! NIKDY NESMÍTE U JAKÉHOKOLIV NAVOLENÉHO MOTORKU „A“ NEBO „B“ ZA CHODU ZMĚNIT SMĚR OTÁČENÍ!!, ZMĚNIT HODNOTU „PWM“, VŽDY NEJPRVE VYPNĚTE CHOD MOTORKU A POTÉ ZMĚNTE SMYSL OTÁČEK MOTORKU JINAK DOJDE K OKAMŽITÉMU ZNIČENÍ MODULU L9110S NADMĚRNÝM ODEBÍRANÝM PROUDEM!!!.
Zadané hodnoty motor „B“ chod vpravo, motor „A“ chod vpravo
Označená hodnota „85“ pro změnu PWM motor „“A“ chod vpravo
Přepsaná původní označená hodnota „85“ na hodnotu „ 90“ motor „A“
Použitý modul s IO L9110S
Použitý modul s připojenými DC motorky zhora dolů motorek „B“ a motorek „A“
Deska Arduino Uno připojení digitálních pinů do kontaktního pole
Navolený motorek „B“ chod
Navolený motorek „A“ chod
Navolený chod motorek „B“ a motorek „A“
Použité prameny :
Burkhard Kainka elektronika s podporou PC Visuál Basic v praxi
Pro Arduino čerpáno z internetu
[1] modul zakoupen v Laskarduino shopu
[2] www.mojeelektronika.mzf.cz
Bližší informace :